package es.albarregas.dao;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collection;
import es.albarregas.pojo.Factura;
public class FacturaDAO extends ConexionDAO {
	private static final String INSERT_STATEMENT = 
			"INSERT INTO facturas (NumeroPedido,Nombre,Apellidos,Nif,Direccion,CodigoPostal,Provincia,Localidad,FormaPago,Fecha)" +
			"VALUES(?,?,?,?,?,?,?,?,?,now())";	
	public Collection<Factura> leerFactura(String clausulaWhere) {
		Collection<Factura> lista = new ArrayList<Factura>();
		try {
			getConexion();
			String consultaSQL = "SELECT NumeroPedido,NumeroFactura,Nombre,Apellidos,Nif,Direccion,CodigoPostal,Provincia,Localidad,FormaPago,date_format(Fecha,'%d-%m-%Y') as Fecha FROM facturas " + clausulaWhere;
			System.out.println("Consulta en FacturaDAO-->"+consultaSQL);
			estamento = conexion.createStatement();
			resultado = estamento.executeQuery(consultaSQL);
			while (resultado.next()) {
				Factura factura = new Factura();
				factura.setApellidos(resultado.getString("apellidos"));
				factura.setCodigoPostal(resultado.getString("codigoPostal"));
				factura.setDireccion(resultado.getString("direccion"));
				factura.setFecha(resultado.getString("fecha"));
				factura.setFormaPago(resultado.getString("formaPago"));
				factura.setLocalidad(resultado.getString("localidad"));
				factura.setNif(resultado.getString("nif"));
				factura.setNombre(resultado.getString("nombre"));
				factura.setNumeroFactura(resultado.getInt("numeroFactura"));
				factura.setNumeroPedido(resultado.getInt("numeroPedido"));
				factura.setProvincia(resultado.getString("provincia"));
				lista.add(factura);
			}
		} catch (SQLException ex) {
			ex.printStackTrace();
		} finally {
			cerrar();
		}
		System.out.println("Coleccion en DescuentosDao " + lista.isEmpty());
		return lista;
	}
	public void crearFactura(Factura factura) {
		try {			
			getConexion();
			preparada = conexion.prepareStatement(INSERT_STATEMENT);
			preparada.setInt(1, factura.getNumeroPedido());			
			preparada.setString(2, factura.getNombre());
			preparada.setString(3, factura.getApellidos());
			preparada.setString(4, factura.getNif());
			preparada.setString(5, factura.getDireccion());
			preparada.setString(6, factura.getCodigoPostal());
			preparada.setString(7, factura.getProvincia());
			preparada.setString(8, factura.getLocalidad());
			preparada.setString(9, factura.getFormaPago());
			preparada.executeUpdate();
		} catch(SQLException ex){
			ex.printStackTrace();
		} finally {
			cerrar();
		}		
	}	
}